package SetMap;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * @TODO
 * @Author xu
 * 2025/3/17
 */
public class CharacterFrequency {
    public static void main(String[] args) {
        // 创建 Scanner 对象以获取用户输入
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符串: ");
        String input = scanner.nextLine(); // 读取用户输入的字符串

        Map<Character, Integer> charCountMap = countCharacterFrequency(input); // 统计字符频率

        // 打印结果
        System.out.println("字符出现次数:");
        for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        scanner.close(); // 关闭 Scanner 对象
    }

    private static Map<Character, Integer> countCharacterFrequency(String str) {
        Map<Character, Integer> charCountMap = new HashMap<>(); // 创建 HashMap 来存储字符和其频率

        // 遍历字符串中的每个字符
        for (char ch : str.toCharArray()) {
            // 如果字符已经在 HashMap 中，增加次数；如果不在，初始化次数为 1
            charCountMap.put(ch, charCountMap.getOrDefault(ch, 0) + 1);
        }

        return charCountMap; // 返回字符频率的 Map
    }
}
